Giter Club home page Giter Club logo

progetto-api-2023's Introduction

Prova Finale di Algoritmi e Principi dell'Informatica - A.A. 2022-2023

License: GPL v2

CMake on a single platform

Prova finale di algoritmi e principi dell'informatica per l'anno accademico 2022-2023.

Docente: Martineghi Davide

Valutazione: 24/30

Obiettivo del progetto

Realizzare un programma in C per la ricerca del percorso ottimo tra stazioni di servizio di un'autostrada.

Il programma non solo deve produrre un output corretto, ma deve rispettare dei vincoli di memoria e tempo CPU come in tabella:

Valutazione Memoria Tempo Esito
18 128 MiB 19 s
21 118 MiB 15 s
24 108 MiB 10 s
27 98 MiB 6 s
30 88 MiB 4 s
30L 78 MiB 1 s

Il mio progetto prendendo i dati dal verificatore ha i seguenti utilizzi di memoria e tempo:

  • Memoria: ~6,1 MiB
  • Tempo: ~6,3 s

Questi risultati possono variare a seconda della potenza di calcolo della macchina.

La specifica completa del progetto è disponibile qui.

I test sono disponibili qui.

Scelte progettuali

La struttura dati che rappresenta l'autostrada è una lista doppiamente concatenata; questa soluzione è stata scelta per semplicità implementativa e per il minor uso di memoria rispetto ad altre strutture dati.

Al fine di rispettare i limiti di tempo è stato necessario creare una cache contenente i puntatori alle ultime stazioni modificate o accedute. Il grafico seguente rappresenta il tempo di esecuzione del programma con input il file open_111.txt al variare della grandezza della cache:

alt text

Note

I tempi di esecuzione sono molto alti siccome il programma è stato eseguito in una macchina virtuale per questo test.

Strumenti utilizzati

Descrizione Strumento
IDE CLion
Compilatore gcc
Misurazione memoria Valgrind - Massif
Sistema operativo Windows 10 e Debian 11

Copyright e licenza

Il progetto è distribuito sotto licenza GPL v2, si applicano le limitazioni descritte in tale licenza.

progetto-api-2023's People

Contributors

ale-polimi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.