Skip to content
Snippets Groups Projects
Commit 38f0be7d authored by Jonas Skogtrø Olsen's avatar Jonas Skogtrø Olsen
Browse files

endringer

parents
No related branches found
No related tags found
1 merge request!1endringer
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Vektedegrafer/Vektedegrafer.iml" filepath="$PROJECT_DIR$/Vektedegrafer/Vektedegrafer.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/oving7.iml" filepath="$PROJECT_DIR$/.idea/oving7.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
# Oving7
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="openjdk-17" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.*;
public class Graf {
static class Kant {
int fra, til, flyt, kapasitet;
public Kant motsattKant;
public Kant(int fra, int til, int kapasitet) {
this.fra = fra;
this.til = til;
this.kapasitet = kapasitet;
}
}
static class Node {
ArrayList<Kant> kanter = new ArrayList<>();
}
static class MaksFlyt {
ArrayList<Svar> svar = new ArrayList<>(); // økning og flytøkende vei for graf
int maksFlyt;
public static Node[] nyGraf(URL url) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int E = Integer.parseInt(st.nextToken());
Node[] noder = new Node[N];
for (int i = 0; i < N; i++) {
noder[i] = new Node();
}
for (int i = 0; i < E; i++) {
st = new StringTokenizer(br.readLine());
int fra = Integer.parseInt(st.nextToken());
int til = Integer.parseInt(st.nextToken());
int kapasitet = Integer.parseInt(st.nextToken());
if (kapasitet == 0) throw new IllegalArgumentException("Forward edge kapasitet <= 0");
Kant e1 = new Kant(fra, til, kapasitet);
Kant e2 = new Kant(til, fra, 0);
e1.motsattKant = e2;
e2.motsattKant = e1;
noder[fra].kanter.add(e1);
noder[til].kanter.add(e2);
}
return noder;
}
void edmondsKarp(int start, int slutt, Node[] graf) {
maksFlyt = 0;
while (true) {
Kant[] flowPath = new Kant[graf.length];
Queue<Node> queue = new ArrayDeque<>();
queue.add(graf[start]);
// BFS
while (!queue.isEmpty()) {
Node current = queue.poll(); // fjerner og returnerer node i kø
for (Kant e : current.kanter) {
if (flowPath[e.til] == null && e.til != start && e.kapasitet > e.flyt) {
// lagrer flowpath til bfs slik at man kan jobbe med det senere
flowPath[e.til] = e;
queue.add(graf[e.til]);
}
}
}
if (flowPath[slutt] == null) {
break; // enden ikke nådd
}
int pushFlow = Integer.MAX_VALUE;
for (Kant e = flowPath[slutt]; e != null; e = flowPath[e.fra])
pushFlow = Math.min(pushFlow, e.kapasitet - e.flyt);
// lagrer svar fra BFS søk
Svar svar = new Svar();
svar.okning = pushFlow;
svar.kanter = new LinkedList<>();
svar.kanter.add(slutt);
// uppdaterer flow for kanter
for (Kant e = flowPath[slutt]; e != null; e = flowPath[e.fra]) {
e.flyt += pushFlow;
e.motsattKant.flyt -= pushFlow;
svar.kanter.addFirst(e.fra);
}
this.svar.add(svar);
maksFlyt += pushFlow;
}
}
void printSvar() {
for (Svar value : svar) {
System.out.println(value);
}
}
static class Svar {
int okning;
LinkedList<Integer> kanter;
@Override
public String toString() {
return "Økning:"+ okning+ " | kanter: "+ kanter;
}
}
public void grafAnalyse(String grafNavn, int start, int slutt, Node[] graf) {
MaksFlyt mf = new MaksFlyt();
System.out.println(grafNavn);
mf.edmondsKarp(start, slutt, graf);
mf.printSvar();
System.out.println("Max flyt " + mf.maksFlyt + "\n");
}
public static void main(String[] args) throws IOException {
MaksFlyt mf = new MaksFlyt();
//Graf1
URL url1 = new URL("http://www.iie.ntnu.no/fag/_alg/v-graf/flytgraf1");
Node[] graf1 = MaksFlyt.nyGraf(url1);
String grafNavn1 = " Graf 1";
mf.grafAnalyse(grafNavn1, 0, 7, graf1);
//graf 2
URL url2 = new URL("http://www.iie.ntnu.no/fag/_alg/v-graf/flytgraf2");
Node[] graf2 = MaksFlyt.nyGraf(url2);
String grafNavn2 = " Graf 2";
mf.grafAnalyse(grafNavn2, 4, 15, graf2);
//graf 3
URL url3 = new URL("http://www.iie.ntnu.no/fag/_alg/v-graf/flytgraf3");
Node[] graf3 = MaksFlyt.nyGraf(url3);
String grafNavn3 = " Graf 3";
mf.grafAnalyse(grafNavn3, 3, 15, graf3);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment